part of "../taobao.dart";

/// 发送淘宝Api请求，如果发生错误，则使用Bug的方式throw出来，如果一切顺利，那么将解码后的body返回
Future<Json> sendTaobaoRequest(Uri uri) async {
  // 发送请求并等待回复
  final response = await get(uri);
  final Json rawBody = jsonDecode(response.body);

  // 如果回复有错误，则将错误信息throw出来
  Json? error = rawBody["error_response"];
  if (error != null) {
    int code = error["code"];
    if (code == 27) throw Bug("session已过期，请重新授权获取session");

    throw Bug("请求淘宝Api发生错误，代码[${error["code"]}]，错误信息：${error["msg"]}");
  }

  // 如果一切顺利，返回解码后的body
  return rawBody;
}
